package com.ccg.utils;

import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;

public class DateUtil {

    /**
     * 获取当前日期字符串
     *
     * @param dateFormat 日期需要的格式 eg：yyyy-MM-dd
     * @param date       日期
     * @return
     */
    public static String getCurrentTime(Date date,String dateFormat) {
        SimpleDateFormat format = new SimpleDateFormat(dateFormat);
        return format.format(date);
    }
    //获取当前时间的yyyy-MM-dd格式字符串
    public static String getNowDate(){
        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
        return format.format(new Date());
    }
    /**
     * 对日期进行加减操作
     *
     * @param date       要进行加减天数的日期
     * @param addOrMinus 对日期加减天数（eg：加一天：1 减一天：-1）
     * @return
     * @throws ParseException
     */
    public static Date dateAddOrMinus(Date date, Integer addOrMinus) {
        if (addOrMinus == null || "".equals(addOrMinus)) {
            addOrMinus = 0;
        }
        Calendar cal = Calendar.getInstance();//使用默认时区和语言环境获得一个日历
        cal.setTime(date);
        cal.add(Calendar.DAY_OF_MONTH, +addOrMinus);
        return cal.getTime();
    }
    //将yyyy-MM-dd类型的字符串转化成Date数据类型
    public static Date timeFormat(String day) throws ParseException {
        SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//定义一个formate
        Date date = simpleDateFormat.parse(day);//将format型转化成Date数据类型
        return date;
    }
    //判断是否在某个日期段之间
    public static boolean between(String dateStr,String startDateStr,String endDateStr) throws ParseException {
        Date date = timeFormat(dateStr);
        Date startDate = timeFormat(startDateStr);
        Date endDate = timeFormat(endDateStr);
        return date.after(startDate)&&date.before(endDate);
    }

}
